{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Color thresholding semantic segmentation\n",
    "\n",
    "Whole-slide images often contain artifacts like marker or acellular regions that\n",
    "need to be avoided during analysis. In this example we show how HistomicsTK can\n",
    "be used to develop saliency detection algorithms that segment the slide at low\n",
    "magnification to generate a map to guide higher magnification analyses. Here we\n",
    "show how how colorspace analysis can detect various elements such as inking\n",
    "or blood, as well as dense cellular regions, to improve the quality of\n",
    "subsequent image analysis tasks.\n",
    "\n",
    "This uses a thresholding and stain unmixing based pipeline to detect\n",
    "highly-cellular regions in a slide. The `run()` method of the\n",
    "`CDT_single_tissue_piece()` class has the key steps of the pipeline.\n",
    "\n",
    "Additional functionality includes contour extraction to get the final segmentation boundaries and to visualize them in DSA using one's preferred styles.\n",
    "\n",
    "**Here are some sample results:**\n",
    "\n",
    "![saliency_results](https://user-images.githubusercontent.com/22067552/80079317-1bcaa580-851e-11ea-9353-a435a2afc6eb.jpg)\n",
    "\n",
    "**Where to look?**\n",
    "\n",
    "```\n",
    "   |_ histomicstk/\n",
    "     |_saliency/\n",
    "        |_cellularity_detection_thresholding.py \n",
    "        |_tests/\n",
    "           |_test_saliency.py\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tempfile\n",
    "import girder_client\n",
    "import numpy as np\n",
    "from pandas import read_csv\n",
    "from histomicstk.annotations_and_masks.annotation_and_mask_utils import (\n",
    "    delete_annotations_in_slide)\n",
    "from histomicstk.saliency.cellularity_detection_thresholding import (\n",
    "    Cellularity_detector_thresholding)\n",
    "\n",
    "import matplotlib.pylab as plt\n",
    "from matplotlib.colors import ListedColormap\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Prepwork"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "APIURL = 'http://candygram.neurology.emory.edu:8080/api/v1/'\n",
    "SAMPLE_SLIDE_ID = \"5d8c296cbd4404c6b1fa5572\"\n",
    "\n",
    "gc = girder_client.GirderClient(apiUrl=APIURL)\n",
    "gc.authenticate(apiKey='kri19nTIGOkWH01TbzRqfohaaDWb6kPecRqGmemb')\n",
    "\n",
    "# This is where the run logs will be saved\n",
    "logging_savepath = tempfile.mkdtemp()\n",
    "\n",
    "# read GT codes dataframe\n",
    "GTcodes = read_csv('../../histomicstk/saliency/tests/saliency_GTcodes.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# deleting existing annotations in target slide (if any)\n",
    "delete_annotations_in_slide(gc, SAMPLE_SLIDE_ID)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Let's explore the GTcodes dataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>group</th>\n",
       "      <th>overlay_order</th>\n",
       "      <th>GT_code</th>\n",
       "      <th>is_roi</th>\n",
       "      <th>is_background_class</th>\n",
       "      <th>color</th>\n",
       "      <th>comments</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>outside_tissue</td>\n",
       "      <td>-1</td>\n",
       "      <td>255</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>rgb(40,40,40)</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>roi</td>\n",
       "      <td>0</td>\n",
       "      <td>254</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>rgb(0,0,0)</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>not_specified</td>\n",
       "      <td>0</td>\n",
       "      <td>253</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>rgb(255,50,255)</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>blue_sharpie</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>rgb(0,224,255)</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>blood</td>\n",
       "      <td>2</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>rgb(255,255,0)</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>whitespace</td>\n",
       "      <td>3</td>\n",
       "      <td>8</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>rgb(70,70,70)</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>maybe_cellular</td>\n",
       "      <td>4</td>\n",
       "      <td>9</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>rgb(145,109,189)</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>top_cellular</td>\n",
       "      <td>5</td>\n",
       "      <td>10</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>rgb(50,250,20)</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            group  overlay_order  GT_code  is_roi  is_background_class  \\\n",
       "0  outside_tissue             -1      255       0                    0   \n",
       "1             roi              0      254       0                    0   \n",
       "2   not_specified              0      253       0                    1   \n",
       "3    blue_sharpie              1        6       0                    0   \n",
       "4           blood              2        7       0                    0   \n",
       "5      whitespace              3        8       0                    0   \n",
       "6  maybe_cellular              4        9       0                    0   \n",
       "7    top_cellular              5       10       0                    0   \n",
       "\n",
       "              color  comments  \n",
       "0     rgb(40,40,40)       NaN  \n",
       "1        rgb(0,0,0)       NaN  \n",
       "2   rgb(255,50,255)       NaN  \n",
       "3    rgb(0,224,255)       NaN  \n",
       "4    rgb(255,255,0)       NaN  \n",
       "5     rgb(70,70,70)       NaN  \n",
       "6  rgb(145,109,189)       NaN  \n",
       "7    rgb(50,250,20)       NaN  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "GTcodes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Initialize the cellularity detector"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Explore the docs\n",
    "\n",
    "Get some idea about the implementation details and default behavior. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Detect cellular regions in a slide using thresholding.\n",
      "\n",
      "    This uses a thresholding and stain unmixing based pipeline\n",
      "    to detect highly-cellular regions in a slide. The run()\n",
      "    method of the CDT_single_tissue_piece() class has the key\n",
      "    steps of the pipeline. In summary, here are the steps\n",
      "    involved...\n",
      "\n",
      "    1. Detect tissue from background using the RGB slide\n",
      "    thumbnail. Each \"tissue piece\" is analysed independently\n",
      "    from here onwards. The tissue_detection modeule is used\n",
      "    for this step. A high sensitivity, low specificity setting\n",
      "    is used here.\n",
      "\n",
      "    2. Fetch the RGB image of tissue at target magnification. A\n",
      "    low magnification (default is 3.0) is used and is sufficient.\n",
      "\n",
      "    3. The image is converted to HSI and LAB spaces. Thresholding\n",
      "    is performed to detect various non-salient components that\n",
      "    often throw-off the color normalization and deconvolution\n",
      "    algorithms. Thresholding includes both minimum and maximum\n",
      "    values. The user can set whichever thresholds of components\n",
      "    they would like. The development of this workflow was focused\n",
      "    on breast cancer so the thresholded components by default\n",
      "    are whote space (or adipose tissue), dark blue/green blotches\n",
      "    (sharpie, inking at margin, etc), and blood. Whitespace\n",
      "    is obtained by thresholding the saturation and intensity,\n",
      "    while other components are obtained by thresholding LAB.\n",
      "\n",
      "    4. Now that we know where \"actual\" tissue is, we do a MASKED\n",
      "    color normalization to a prespecified standard. The masking\n",
      "    ensures the normalization routine is not thrown off by non-\n",
      "    tissue components.\n",
      "\n",
      "    5. Perform masked stain unmixing/deconvolution to obtain the\n",
      "    hematoxylin stain channel.\n",
      "\n",
      "    6. Smooth and threshold the hematoxylin channel. Then\n",
      "    perform connected component analysis to find contiguous\n",
      "    potentially-cellular regions.\n",
      "\n",
      "    7. Keep the n largest potentially-cellular regions. Then\n",
      "    from those large regions, keep the m brightest regions\n",
      "    (using hematoxylin channel brightness) as the final\n",
      "    salient/cellular regions.\n",
      "\n",
      "    \n"
     ]
    }
   ],
   "source": [
    "print(Cellularity_detector_thresholding.__doc__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The only required arguments to initialize are `gc`, `slide_id`, and `GTcodes`.\n",
    "Everything else is optional and assigned defaults, but you may want to read up on\n",
    "what each argument does to adjust to your specific needs. The default behavior\n",
    "is defined at the beginning of the `__init__()` method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Init Cellularity_Detector_Superpixels object.\n",
      "\n",
      "        Arguments:\n",
      "        -----------\n",
      "        gc : object\n",
      "            girder client object\n",
      "\n",
      "        slide_id : str\n",
      "            girder ID of slide\n",
      "\n",
      "        GTcodes : pandas Dataframe\n",
      "            the ground truth codes and information dataframe.\n",
      "            WARNING: Modified inside this method so pass a copy.\n",
      "            This is a dataframe that is indexed by the annotation group name\n",
      "            and has the following columns...\n",
      "\n",
      "            group: str\n",
      "                group name of annotation, eg. mostly_tumor\n",
      "            overlay_order: int\n",
      "                how early to place the annotation in the\n",
      "                mask. Larger values means this annotation group is overlayed\n",
      "                last and overwrites whatever overlaps it.\n",
      "            GT_code: int\n",
      "                desired ground truth code (in the mask).\n",
      "                Pixels of this value belong to corresponding group (class)\n",
      "            is_roi: bool\n",
      "                whether this group encodes an ROI\n",
      "            is_background_class: bool\n",
      "                whether this group is the default fill value inside the ROI.\n",
      "                For example, you may decide that any pixel inside the ROI\n",
      "                is considered stroma.\n",
      "            color: str\n",
      "                rgb format. eg. rgb(255,0,0)\n",
      "\n",
      "            The following indexes must be present...\n",
      "            outside_tissue, not_specified, maybe_cellular, top_cellular\n",
      "\n",
      "        verbose : int\n",
      "            0 - Do not print to screen\n",
      "            1 - Print only key messages\n",
      "            2 - Print everything to screen\n",
      "            3 - print everything including from inner functions\n",
      "\n",
      "        monitorPrefix : str\n",
      "            text to prepend to printed statements\n",
      "\n",
      "        logging_savepath : str or None\n",
      "            where to save run logs\n",
      "\n",
      "        suppress_warnings : bool\n",
      "            whether to suppress warnings\n",
      "\n",
      "        MAG : float\n",
      "            magnification at which to detect cellularity\n",
      "\n",
      "        color_normalization_method : str\n",
      "            Must be in ['reinhard', 'macenko_pca', 'none']\n",
      "\n",
      "        target_W_macenko : np array\n",
      "            3 by 3 stain matrix for macenko normalization\n",
      "            obtained using rgb_separate_stains_macenko_pca()\n",
      "            and reordered such that hematoxylin and eosin are\n",
      "            the first and second channels, respectively.\n",
      "\n",
      "        target_stats_reinhard : dict\n",
      "            must contains the keys mu and sigma. Mean and sigma\n",
      "            of target image in LAB space for reinhard normalization.\n",
      "\n",
      "        get_tissue_mask_kwargs : dict\n",
      "            kwargs for the get_tissue_mask() method. This is used\n",
      "            to detect tissue from the slide thumbnail.\n",
      "\n",
      "        keep_components : list\n",
      "            list of strings. Names of components to exclude by\n",
      "            HSI thresholding. These much be present in the index\n",
      "            of the GTcodes dataframe\n",
      "\n",
      "        get_tissue_mask_kwargs2 : dict\n",
      "            kwargs for get_tissue_mask() used for iterative smoothing\n",
      "            and thresholding the component masks after initial\n",
      "            thresholding using the user-defined HSI/LAB thresholds.\n",
      "\n",
      "        hsi_thresholds : dict\n",
      "            each entry is a dict containing the keys hue, saturation\n",
      "            and intensity. Each of these is in turn also a dict\n",
      "            containing the keys min and max. See default value below\n",
      "            for an example.\n",
      "\n",
      "        lab_thresholds : dict\n",
      "            each entry is a dict containing the keys l, a, and b.\n",
      "            Each of these is in turn also a dict containing the keys\n",
      "            min and max. See default value below for an example.\n",
      "\n",
      "        stain_unmixing_routine_params : dict\n",
      "            kwargs passed as the stain_unmixing_routine_params\n",
      "            argument to the deconvolution_based_normalization method\n",
      "\n",
      "        cellular_step1_sigma : float\n",
      "            sigma of gaussian smoothing for first cellularity step\n",
      "\n",
      "        cellular_step1_min_size : int\n",
      "            minimum contiguous size for first cellularity step\n",
      "\n",
      "        cellular_step2_sigma : float\n",
      "            sigma of gaussian smoothing for second cellularity step\n",
      "\n",
      "        cellular_largest_n : int\n",
      "            Number of large contiguous cellular regions to keep\n",
      "\n",
      "        cellular_top_n : int\n",
      "            Number of final \"top\" cellular regions to keep\n",
      "\n",
      "        visualize : bool\n",
      "            whether to visualize results in DSA\n",
      "\n",
      "        opacity : float\n",
      "            opacity of superpixel polygons when posted to DSA.\n",
      "            0 (no opacity) is more efficient to render.\n",
      "\n",
      "        lineWidth : float\n",
      "            width of line when displaying region boundaries.\n",
      "\n",
      "        \n"
     ]
    }
   ],
   "source": [
    "print(Cellularity_detector_thresholding.__init__.__doc__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving logs to: /tmp/tmpclyolr1y/2019-10-27_17-51.log\n"
     ]
    }
   ],
   "source": [
    "# init cellularity detector\n",
    "cdt = Cellularity_detector_thresholding(\n",
    "    gc, slide_id=SAMPLE_SLIDE_ID, GTcodes=GTcodes,\n",
    "    verbose=2, monitorPrefix='test',\n",
    "    logging_savepath=logging_savepath)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Set the color normalization values (optional)\n",
    "\n",
    "By default, color normalization is performed using the macenko method and standardizing to\n",
    "a hematoxylin and eosin standard from the target image\n",
    "TCGA-A2-A3XS-DX1_xmin21421_ymin37486 from Amgad et al, 2019.\n",
    "\n",
    "If you don't like this behavior, and would prefer to use your own target image or a\n",
    "different color normalization method, use the set_color_normalization_method() below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Set color normalization values to use from target image.\n",
      "\n",
      "        Arguments:\n",
      "        -----------\n",
      "        ref_image_path : str\n",
      "            path to target (reference) image\n",
      "\n",
      "        color_normalization_method : str\n",
      "            color normalization method to use. Currently, only\n",
      "            'reinhard' and 'macenko_pca' are accepted.\n",
      "\n",
      "        \n"
     ]
    }
   ],
   "source": [
    "print(cdt.set_color_normalization_target.__doc__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Run the detector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test: set_slide_info_and_get_tissue_mask()\n",
      "test: Tissue piece 1 of 1\n",
      "test: Tissue piece 1 of 1: set_tissue_rgb()\n",
      "test: Tissue piece 1 of 1: initialize_labeled_mask()\n",
      "test: Tissue piece 1 of 1: assign_components_by_thresholding()\n",
      "test: Tissue piece 1 of 1: -- get HSI and LAB images ...\n",
      "test: Tissue piece 1 of 1: -- thresholding blue_sharpie ...\n",
      "test: Tissue piece 1 of 1: -- thresholding blood ...\n",
      "test: Tissue piece 1 of 1: -- thresholding whitespace ...\n",
      "test: Tissue piece 1 of 1: color_normalize_unspecified_components()\n",
      "test: Tissue piece 1 of 1: -- macenko normalization ...\n",
      "test: Tissue piece 1 of 1: find_potentially_cellular_regions()\n",
      "test: Tissue piece 1 of 1: find_top_cellular_regions()\n",
      "test: Tissue piece 1 of 1: visualize_results()\n"
     ]
    }
   ],
   "source": [
    "tissue_pieces = cdt.run()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Check the results\n",
    "\n",
    "The resultant list of objects correspond to the results for each \"tissue piece\" detected in the slide. You may explore various attributes like the offset coordinates and labeled mask."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tissue piece 0:  xmin 30455 xmax 113472 ymin 5403 ymax 67297\n"
     ]
    }
   ],
   "source": [
    "print(\n",
    "    'Tissue piece 0: ',\n",
    "    'xmin', tissue_pieces[0].xmin,\n",
    "    'xmax', tissue_pieces[0].xmax,\n",
    "    'ymin', tissue_pieces[0].ymin,\n",
    "    'ymax', tissue_pieces[0].ymax,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# color map\n",
    "tmp = tissue_pieces[0].labeled.copy()\n",
    "tmp[0, :256] = np.arange(256)\n",
    "vals = ['black'] * 256\n",
    "vals[6] = 'cyan'  # sharpie / ink\n",
    "vals[7] = 'yellow'  # blood\n",
    "vals[8] = 'grey'  # whitespace\n",
    "vals[9] = 'indigo'  # maybe cellular\n",
    "vals[10] = 'green'  # salient / top cellular\n",
    "cMap = ListedColormap(vals)\n",
    "\n",
    "plt.figure(figsize=(10,10))\n",
    "plt.imshow(tmp, cmap=cMap)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Check the visualization on HistomicsUI\n",
    "\n",
    "Now you may go to the slide on Digital Slide Archive and check the posted annotations."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
